@using BTCPayServer.Components.QRCode
@using BTCPayServer.Migrations
@using BTCPayServer.TagHelpers
@using Microsoft.AspNetCore.Html
@using Microsoft.AspNetCore.Mvc.TagHelpers
@model EnableAuthenticatorViewModel
@{
    ViewData.SetLayoutModel(new LayoutModel(nameof(ManageNavPages.TwoFactorAuthentication), StringLocalizer["Enable Authenticator App"])
        .SetCategory(nameof(ManageNavPages)));
}
<div class="sticky-header">
    <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            <li class="breadcrumb-item">
                <a asp-action="TwoFactorAuthentication" text-translate="true">Two Factor Authentication</a>
            </li>
            <li class="breadcrumb-item active" aria-current="page">@ViewData["Title"]</li>
        </ol>
        <h2>@ViewData["Title"]</h2>
    </nav>
</div>
<partial name="_StatusMessage" />
<p class="my-3" text-translate="true">To use an authenticator app go through the following steps:</p>
<div class="col-xl-8 col-xxl-constrain">
    <ol class="ps-3">
        <li class="mb-5">
            <div class="mb-2" text-translate="true">Download a two-factor authenticator app like …</div>
            <ul>
                <li>
                    @ViewLocalizer["{0} for {1} or {2}", "Authy",
                        new HtmlString("<a href=\"https://play.google.com/store/apps/details?id=com.authy.authy\" target=\"_blank\" rel=\"noreferrer noopener\">Android</a>"),
                        new HtmlString("<a href=\"https://apps.apple.com/us/app/authy/id494168017\" target=\"_blank\" rel=\"noreferrer noopener\">iOS</a>")]
                </li>
                <li>
                    @ViewLocalizer["{0} for {1} or {2}", "Microsoft Authenticator",
                        new HtmlString("<a href=\"https://play.google.com/store/apps/details?id=com.azure.authenticator\" target=\"_blank\" rel=\"noreferrer noopener\">Android</a>"),
                        new HtmlString("<a href=\"https://apps.apple.com/us/app/microsoft-authenticator/id983156458\" target=\"_blank\" rel=\"noreferrer noopener\">iOS</a>")]
                </li>
                <li>

                    @ViewLocalizer["{0} for {1} or {2}", "Google Authenticator",
                        new HtmlString("<a href=\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en\" target=\"_blank\" rel=\"noreferrer noopener\">Android</a>"),
                        new HtmlString("<a href=\"https://apps.apple.com/us/app/google-authenticator/id388497605\" target=\"_blank\" rel=\"noreferrer noopener\">iOS</a>")]
                </li>
            </ul>
        </li>
        <li class="mb-5">
            <p class="mb-2" text-translate="true">Scan the QR Code or enter the following key into your two-factor authenticator app:</p>
            <div class="input-group input-group-sm mb-4">
                <input readonly class="form-control font-monospace" value="@Model.SharedKey" id="SharedKey" style="max-width:20rem">
                <button type="button" class="btn btn-outline-secondary clipboard-button" data-clipboard-target="#SharedKey">
                    <vc:icon symbol="actions-copy" />
                </button>
            </div>
            <div id="qrCode"></div>
            <div id="qrCodeData" data-url="@Model.AuthenticatorUri"></div>
        </li>
        <li>
            <p>
                <span text-translate="true">Your two-factor authenticator app will provide you with a unique code.</span>
                <br/>
                <span text-translate="true">Enter the code in the confirmation box below.</span>
            </p>
            <form method="post">
                <input asp-for="AuthenticatorUri" type="hidden" />
                <input asp-for="SharedKey" type="hidden" />
                <div class="form-group">
                    <label asp-for="Code" class="form-label" text-translate="true">Verification Code</label>
                    <input asp-for="Code" class="form-control" autocomplete="off" autofocus style="width:14ch"/>
                    <span asp-validation-for="Code" class="text-danger"></span>
                </div>
                <button type="submit" class="btn btn-primary mt-2" text-translate="true">Verify</button>
                <div asp-validation-summary="ModelOnly"></div>
            </form>
        </li>
    </ol>
</div>

@section PageFootContent {
    <partial name="_ValidationScriptsPartial" />
    <script src="~/js/qrcode.js" asp-append-version="true"></script>
    <script>
        new QRCode(document.getElementById("qrCode"), {
            text: @Safe.Json(Model.AuthenticatorUri),
            width: 200,
            height: 200,
            useSVG: true,
            correctLevel : QRCode.CorrectLevel.M
        });
        $("#qrCode > img").css({ "margin": "auto" });
    </script>
}
